1 Introduction

Ahdash et al. performed HDX-MS on the baceterial sec translocon, a multi-protein complex responsible for translocating diverse proteins across the plasma membrane. Here we analyse this experiment using our functional data analysis approaches

2 loading packges

We will first load the packages required in the analysis of this approach. Please install these packages if you do not have them.

3 Data

The data is stored as a .csv, we need to covert it to an object of class QFeatures. This is performed in a number of steps which we detail below. The data is contained within the package and so can be loaded by specificy the correct path.

#secApath <- system.file("inst/extdata", "Project_2_SecA_Cluster_Data.csv", package = "hdxstats")
secApath <- "../inst/extdata/Project_2_SecA_Cluster_Data.csv"

We can now read in the .csv file and have a quick look at the .csv.

secA <- read.csv(secApath)
head(secA) # have a look
##   Protein Start End Sequence Modification Fragment MaxUptake      MHP State
## 1  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
## 2  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
## 3  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
## 4  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
## 5  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
## 6  RANDOM     4   8    LGGTQ           NA       NA         4 475.2511  SecA
##   Exposure                File z       RT  Inten   Center
## 1     0.00   291018_SecA_REF_5 1 3.693435 710541 475.5310
## 2     0.00   291018_SecA_REF_4 1 4.077553  13038 476.8321
## 3     0.00   291018_SecA_REF_3 1 3.719365 819312 475.4421
## 4     0.00   291018_SecA_REF_2 1 3.712732 559986 475.4829
## 5     0.00   291018_SecA_REF_1 1 3.677982 527423 475.5147
## 6     0.25 011118_SecA_15sec_1 1 3.724814 506213 475.9036
length(unique(secA$Sequence)) # peptide sequences
## [1] 397
unique(secA$State) # States
## [1] "SecA"           "SecAYEG"        "SecAYEG_ADP"    "SecAYEG_AMPPNP"
## [5] "SecA_ADP"       "SecA_AMPPNP"

Let us have a quick visualisation of some the data so that we can see some of the features

filter(secA, Sequence == unique(secA$Sequence[1]), z == 1) %>%
    ggplot(aes(x = Exposure, y = Center, color = factor(State))) + 
    theme_classic() + geom_point(size = 2) + 
    scale_color_manual(values = brewer.pal(n = 7, name = "Set2")) + 
    labs(color = "experiment", x = "Deuterium Exposure", y = "Peptide Mass")

# Parsing to an object of class QFeatures

Working from a .csv is likely to cause issues downstream. Indeed, we run the risk of accidently changing the data or corrupting the file in some way. Secondly, all .csvs will be formatted slightly different and so making extensible tools for these files will be inefficient. Furthermore, working with a generic class used in other mass-spectrometry fields can speed up analysis and adoption of new methods. We will work the class QFeatures from the QFeatures class as it is a powerful and scalable way to store quantitative mass-spectrometry data.

Firstly, the data is storted in long format rather than wide format. We first switch the data to wide format.

secA <- pivot_wider(data.frame(secA),
                        values_from = "Center",
                        names_from = c("Exposure", "File", "State"),
                        id_cols = c("Sequence", "z"))
head(secA)
## # A tibble: 6 × 107
##   Sequence     z 0_291…¹ 0_291…² 0_291…³ 0_291…⁴ 0_291…⁵ 0.25_…⁶ 0.25_…⁷ 0.25_…⁸
##   <chr>    <int>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
## 1 LGGTQ        1    476.    477.    475.    475.    476.    476.    476.    476.
## 2 MLIKL        1    618.    618.    618.    618.    618.    620.    620.    620.
## 3 LIKLLT       1    701.    701.    701.    701.    701.    705.    705.    704.
## 4 IKLLT        1    588.    588.    588.    588.    588.    591.    591.    591.
## 5 IINAME       1    691.    691.    691.    691.    691.    691.     NA     691.
## 6 AMEPEM       1    708.    708.    708.    708.    708.    708.    708.    708.
## # … with 97 more variables: `1_011118_SecA_1min_1_SecA` <dbl>,
## #   `1_011118_SecA_1min_2_SecA` <dbl>, `1_011118_SecA_1min_3_SecA` <dbl>,
## #   `5_011118_SecA_5min_1_SecA` <dbl>, `5_011118_SecA_5min_2_SecA` <dbl>,
## #   `5_011118_SecA_5min_3_SecA` <dbl>,
## #   `30.000002_011118_SecA_30min_1_SecA` <dbl>,
## #   `30.000002_011118_SecA_30min_2_SecA` <dbl>,
## #   `30.000002_011118_SecA_30min_3_SecA` <dbl>, …

We notice that there are many columns with NAs. The follow code chunk removes these columns.

secA <- secA[, colSums(is.na(secA)) != nrow(secA)]

We also note that the colnames are not very informative. We are going to format in a very specific way so that later functions can automatically infer the design from the column names. We provide in the format X(time)rep(replicate)cond(condition)

colnames(secA[-c(1,2)])
##   [1] "0_291018_SecA_REF_5_SecA"                              
##   [2] "0_291018_SecA_REF_4_SecA"                              
##   [3] "0_291018_SecA_REF_3_SecA"                              
##   [4] "0_291018_SecA_REF_2_SecA"                              
##   [5] "0_291018_SecA_REF_1_SecA"                              
##   [6] "0.25_011118_SecA_15sec_1_SecA"                         
##   [7] "0.25_011118_SecA_15sec_2_SecA"                         
##   [8] "0.25_011118_SecA_15sec_3_SecA"                         
##   [9] "1_011118_SecA_1min_1_SecA"                             
##  [10] "1_011118_SecA_1min_2_SecA"                             
##  [11] "1_011118_SecA_1min_3_SecA"                             
##  [12] "5_011118_SecA_5min_1_SecA"                             
##  [13] "5_011118_SecA_5min_2_SecA"                             
##  [14] "5_011118_SecA_5min_3_SecA"                             
##  [15] "30.000002_011118_SecA_30min_1_SecA"                    
##  [16] "30.000002_011118_SecA_30min_2_SecA"                    
##  [17] "30.000002_011118_SecA_30min_3_SecA"                    
##  [18] "0_011118_SecA_YEG_ref_2_SecAYEG"                       
##  [19] "0_011118_SecA_YEG_ref_3_SecAYEG"                       
##  [20] "0_011118_SecA_YEG_ref_1_SecAYEG"                       
##  [21] "0.25_011118_SecA_YEG_15sec_1_SecAYEG"                  
##  [22] "0.25_011118_SecA_YEG_15sec_2_SecAYEG"                  
##  [23] "0.25_011118_SecA_YEG_15sec_3_SecAYEG"                  
##  [24] "1_011118_SecA_YEG_1min_1_SecAYEG"                      
##  [25] "1_011118_SecA_YEG_1min_2_SecAYEG"                      
##  [26] "1_011118_SecA_YEG_1min_3_SecAYEG"                      
##  [27] "5_011118_SecA_YEG_5min_1_SecAYEG"                      
##  [28] "5_011118_SecA_YEG_5min_2_SecAYEG"                      
##  [29] "5_011118_SecA_YEG_5min_3_SecAYEG"                      
##  [30] "30.000002_011118_SecA_YEG_30min_1_SecAYEG"             
##  [31] "30.000002_011118_SecA_YEG_30min_2_SecAYEG"             
##  [32] "30.000002_011118_SecA_YEG_30min_3_SecAYEG"             
##  [33] "0_011118_SecA_YEG_ref_2_SecAYEG_ADP"                   
##  [34] "0_011118_SecA_YEG_ref_3_SecAYEG_ADP"                   
##  [35] "0_011118_SecA_YEG_ref_1_SecAYEG_ADP"                   
##  [36] "0.25_311018_SecA_YEG_ADP_15sec_3_SecAYEG_ADP"          
##  [37] "0.25_311018_SecA_YEG_ADP_15sec_2_SecAYEG_ADP"          
##  [38] "0.25_311018_SecA_YEG_ADP_15sec_1_SecAYEG_ADP"          
##  [39] "1_311018_SecA_YEG_ADP_1min_3_SecAYEG_ADP"              
##  [40] "1_311018_SecA_YEG_ADP_1min_2_SecAYEG_ADP"              
##  [41] "1_311018_SecA_YEG_ADP_1min_1_SecAYEG_ADP"              
##  [42] "5_311018_SecA_YEG_ADP_5min_3_SecAYEG_ADP"              
##  [43] "5_311018_SecA_YEG_ADP_5min_2_SecAYEG_ADP"              
##  [44] "5_311018_SecA_YEG_ADP_5min_1_SecAYEG_ADP"              
##  [45] "30.000002_311018_SecA_YEG_ADP_30min_3_SecAYEG_ADP"     
##  [46] "30.000002_311018_SecA_YEG_ADP_30min_2_SecAYEG_ADP"     
##  [47] "30.000002_311018_SecA_YEG_ADP_30min_1_SecAYEG_ADP"     
##  [48] "0_011118_SecA_YEG_ref_2_SecAYEG_AMPPNP"                
##  [49] "0_011118_SecA_YEG_ref_3_SecAYEG_AMPPNP"                
##  [50] "0_011118_SecA_YEG_ref_1_SecAYEG_AMPPNP"                
##  [51] "0.25_291018_SecYEGA_AMPPNP_15sec_3_SecAYEG_AMPPNP"     
##  [52] "0.25_291018_SecYEGA_AMPPNP_15sec_2_SecAYEG_AMPPNP"     
##  [53] "0.25_291018_SecYEGA_AMPPNP_15sec_1_SecAYEG_AMPPNP"     
##  [54] "1_291018_SecYEGA_AMPPNP_1min_3_SecAYEG_AMPPNP"         
##  [55] "1_291018_SecYEGA_AMPPNP_1min_2_SecAYEG_AMPPNP"         
##  [56] "1_291018_SecYEGA_AMPPNP_1min_1_SecAYEG_AMPPNP"         
##  [57] "5_301018_SecYEGA_AMPPNP_5min_3_SecAYEG_AMPPNP"         
##  [58] "5_301018_SecYEGA_AMPPNP_5min_2_SecAYEG_AMPPNP"         
##  [59] "5_301018_SecYEGA_AMPPNP_5min_1_SecAYEG_AMPPNP"         
##  [60] "30.000002_301018_SecYEGA_AMPPNP_30min_3_SecAYEG_AMPPNP"
##  [61] "30.000002_301018_SecYEGA_AMPPNP_30min_2_SecAYEG_AMPPNP"
##  [62] "30.000002_301018_SecYEGA_AMPPNP_30min_1_SecAYEG_AMPPNP"
##  [63] "0_291018_SecA_REF_5_SecA_ADP"                          
##  [64] "0_291018_SecA_REF_4_SecA_ADP"                          
##  [65] "0_291018_SecA_REF_3_SecA_ADP"                          
##  [66] "0_291018_SecA_REF_2_SecA_ADP"                          
##  [67] "0_291018_SecA_REF_1_SecA_ADP"                          
##  [68] "0.25_311018_SecA_ADP_15sec_4_SecA_ADP"                 
##  [69] "0.25_311018_SecA_ADP_15sec_3_SecA_ADP"                 
##  [70] "0.25_301018_SecA_ADP_15sec_2_SecA_ADP"                 
##  [71] "1_311018_SecA_ADP_1min_3_SecA_ADP"                     
##  [72] "1_311018_SecA_ADP_1min_2_SecA_ADP"                     
##  [73] "1_311018_SecA_ADP_1min_1_SecA_ADP"                     
##  [74] "5_311018_SecA_ADP_5min_3_SecA_ADP"                     
##  [75] "5_311018_SecA_ADP_5min_2_SecA_ADP"                     
##  [76] "5_311018_SecA_ADP_5min_1_SecA_ADP"                     
##  [77] "30.000002_311018_SecA_ADP_30min_3_SecA_ADP"            
##  [78] "30.000002_311018_SecA_ADP_30min_2_SecA_ADP"            
##  [79] "30.000002_311018_SecA_ADP_30min_1_SecA_ADP"            
##  [80] "0_291018_SecA_REF_5_SecA_AMPPNP"                       
##  [81] "0_291018_SecA_REF_4_SecA_AMPPNP"                       
##  [82] "0_291018_SecA_REF_3_SecA_AMPPNP"                       
##  [83] "0_291018_SecA_REF_2_SecA_AMPPNP"                       
##  [84] "0_291018_SecA_REF_1_SecA_AMPPNP"                       
##  [85] "0.25_291018_SecA_AMPPNP_15sec_3_SecA_AMPPNP"           
##  [86] "0.25_291018_SecA_AMPPNP_15sec_2_SecA_AMPPNP"           
##  [87] "0.25_291018_SecA_AMPPNP_15sec_1_SecA_AMPPNP"           
##  [88] "1_291018_SecA_AMPPNP_1min_3_SecA_AMPPNP"               
##  [89] "1_291018_SecA_AMPPNP_1min_2_SecA_AMPPNP"               
##  [90] "1_291018_SecA_AMPPNP_1min_1_SecA_AMPPNP"               
##  [91] "5_291018_SecA_AMPPNP_5min_3_SecA_AMPPNP"               
##  [92] "5_291018_SecA_AMPPNP_5min_2_SecA_AMPPNP"               
##  [93] "5_291018_SecA_AMPPNP_5min_1_SecA_AMPPNP"               
##  [94] "30.000002_291018_SecA_AMPPNP_30min_3_SecA_AMPPNP"      
##  [95] "30.000002_291018_SecA_AMPPNP_30min_2_SecA_AMPPNP"      
##  [96] "30.000002_291018_SecA_AMPPNP_30min_1_SecA_AMPPNP"      
##  [97] "0_291018_SecA_SecYEG_REF_2_SecAYEG"                    
##  [98] "0_291018_SecA_SecYEG_REF_2_SecAYEG_ADP"                
##  [99] "0_291018_SecA_SecYEG_REF_2_SecAYEG_AMPPNP"             
## [100] "0_291018_SecA_YEG_REF_1_SecAYEG"                       
## [101] "0_291018_SecA_YEG_REF_1_SecAYEG_ADP"                   
## [102] "0_291018_SecA_YEG_REF_1_SecAYEG_AMPPNP"                
## [103] "0_291018_SecA_SecYEG_REF_3_SecAYEG"                    
## [104] "0_291018_SecA_SecYEG_REF_3_SecAYEG_ADP"                
## [105] "0_291018_SecA_SecYEG_REF_3_SecAYEG_AMPPNP"
#################################
# DONE
new.colnames <- gsub("0_", "0rep", paste0("X", colnames(secA)[-c(1,2)]))

#################################
# DONE
new.colnames <- gsub("X0.25_", "X15rep", new.colnames) # convert to seconds too
new.colnames <- gsub("X1_", "X60rep", new.colnames) # convert to seconds too
new.colnames <- gsub("X5_", "X300rep", new.colnames) # convert to seconds too
new.colnames <- gsub("X30.000002_", "X1800rep", new.colnames) # convert to seconds too
#################################
# TEST
# States <- c("SecA", "SecAYEG", "SecAYEG_ADP", "SecAYEG_AMPPNP", "SecA_ADP", "SecA_AMPPNP")
for (i in 1:length(new.colnames)){
  x <- strsplit(new.colnames[[i]], split = "SecA")
  
  if (length(x[[1]]) == 3){
    y <- tail(strsplit(x[[1]][[2]], split="_")[[1]], n=1)
  }
  else if (length(x[[1]]) == 2){
    y <- tail(strsplit(x[[1]][[1]], split="_")[[1]], n=1)
  }
  print(paste(length(x[[1]]), new.colnames[[i]], x, y))
}
## [1] "2 X0rep291018_SecA_REF_5_SecA c(\"X0rep291018_\", \"_REF_5_\") X0rep291018"
## [1] "2 X0rep291018_SecA_REF_4_SecA c(\"X0rep291018_\", \"_REF_4_\") X0rep291018"
## [1] "2 X0rep291018_SecA_REF_3_SecA c(\"X0rep291018_\", \"_REF_3_\") X0rep291018"
## [1] "2 X0rep291018_SecA_REF_2_SecA c(\"X0rep291018_\", \"_REF_2_\") X0rep291018"
## [1] "2 X0rep291018_SecA_REF_1_SecA c(\"X0rep291018_\", \"_REF_1_\") X0rep291018"
## [1] "2 X15rep011118_SecA_15sec_1_SecA c(\"X15rep011118_\", \"_15sec_1_\") X15rep011118"
## [1] "2 X15rep011118_SecA_15sec_2_SecA c(\"X15rep011118_\", \"_15sec_2_\") X15rep011118"
## [1] "2 X15rep011118_SecA_15sec_3_SecA c(\"X15rep011118_\", \"_15sec_3_\") X15rep011118"
## [1] "2 X60rep011118_SecA_1min_1_SecA c(\"X60rep011118_\", \"_1min_1_\") X60rep011118"
## [1] "2 X60rep011118_SecA_1min_2_SecA c(\"X60rep011118_\", \"_1min_2_\") X60rep011118"
## [1] "2 X60rep011118_SecA_1min_3_SecA c(\"X60rep011118_\", \"_1min_3_\") X60rep011118"
## [1] "2 X300rep011118_SecA_5min_1_SecA c(\"X300rep011118_\", \"_5min_1_\") X300rep011118"
## [1] "2 X300rep011118_SecA_5min_2_SecA c(\"X300rep011118_\", \"_5min_2_\") X300rep011118"
## [1] "2 X300rep011118_SecA_5min_3_SecA c(\"X300rep011118_\", \"_5min_3_\") X300rep011118"
## [1] "2 X1800rep011118_SecA_30min_1_SecA c(\"X1800rep011118_\", \"_30min_1_\") X1800rep011118"
## [1] "2 X1800rep011118_SecA_30min_2_SecA c(\"X1800rep011118_\", \"_30min_2_\") X1800rep011118"
## [1] "2 X1800rep011118_SecA_30min_3_SecA c(\"X1800rep011118_\", \"_30min_3_\") X1800rep011118"
## [1] "3 X0rep011118_SecA_YEG_ref_2_SecAYEG c(\"X0rep011118_\", \"_YEG_ref_2_\", \"YEG\") 2"
## [1] "3 X0rep011118_SecA_YEG_ref_3_SecAYEG c(\"X0rep011118_\", \"_YEG_ref_3_\", \"YEG\") 3"
## [1] "3 X0rep011118_SecA_YEG_ref_1_SecAYEG c(\"X0rep011118_\", \"_YEG_ref_1_\", \"YEG\") 1"
## [1] "3 X15rep011118_SecA_YEG_15sec_1_SecAYEG c(\"X15rep011118_\", \"_YEG_15sec_1_\", \"YEG\") 1"
## [1] "3 X15rep011118_SecA_YEG_15sec_2_SecAYEG c(\"X15rep011118_\", \"_YEG_15sec_2_\", \"YEG\") 2"
## [1] "3 X15rep011118_SecA_YEG_15sec_3_SecAYEG c(\"X15rep011118_\", \"_YEG_15sec_3_\", \"YEG\") 3"
## [1] "3 X60rep011118_SecA_YEG_1min_1_SecAYEG c(\"X60rep011118_\", \"_YEG_1min_1_\", \"YEG\") 1"
## [1] "3 X60rep011118_SecA_YEG_1min_2_SecAYEG c(\"X60rep011118_\", \"_YEG_1min_2_\", \"YEG\") 2"
## [1] "3 X60rep011118_SecA_YEG_1min_3_SecAYEG c(\"X60rep011118_\", \"_YEG_1min_3_\", \"YEG\") 3"
## [1] "3 X300rep011118_SecA_YEG_5min_1_SecAYEG c(\"X300rep011118_\", \"_YEG_5min_1_\", \"YEG\") 1"
## [1] "3 X300rep011118_SecA_YEG_5min_2_SecAYEG c(\"X300rep011118_\", \"_YEG_5min_2_\", \"YEG\") 2"
## [1] "3 X300rep011118_SecA_YEG_5min_3_SecAYEG c(\"X300rep011118_\", \"_YEG_5min_3_\", \"YEG\") 3"
## [1] "3 X1800rep011118_SecA_YEG_30min_1_SecAYEG c(\"X1800rep011118_\", \"_YEG_30min_1_\", \"YEG\") 1"
## [1] "3 X1800rep011118_SecA_YEG_30min_2_SecAYEG c(\"X1800rep011118_\", \"_YEG_30min_2_\", \"YEG\") 2"
## [1] "3 X1800rep011118_SecA_YEG_30min_3_SecAYEG c(\"X1800rep011118_\", \"_YEG_30min_3_\", \"YEG\") 3"
## [1] "3 X0rep011118_SecA_YEG_ref_2_SecAYEG_ADP c(\"X0rep011118_\", \"_YEG_ref_2_\", \"YEG_ADP\") 2"
## [1] "3 X0rep011118_SecA_YEG_ref_3_SecAYEG_ADP c(\"X0rep011118_\", \"_YEG_ref_3_\", \"YEG_ADP\") 3"
## [1] "3 X0rep011118_SecA_YEG_ref_1_SecAYEG_ADP c(\"X0rep011118_\", \"_YEG_ref_1_\", \"YEG_ADP\") 1"
## [1] "3 X15rep311018_SecA_YEG_ADP_15sec_3_SecAYEG_ADP c(\"X15rep311018_\", \"_YEG_ADP_15sec_3_\", \"YEG_ADP\") 3"
## [1] "3 X15rep311018_SecA_YEG_ADP_15sec_2_SecAYEG_ADP c(\"X15rep311018_\", \"_YEG_ADP_15sec_2_\", \"YEG_ADP\") 2"
## [1] "3 X15rep311018_SecA_YEG_ADP_15sec_1_SecAYEG_ADP c(\"X15rep311018_\", \"_YEG_ADP_15sec_1_\", \"YEG_ADP\") 1"
## [1] "3 X60rep311018_SecA_YEG_ADP_1min_3_SecAYEG_ADP c(\"X60rep311018_\", \"_YEG_ADP_1min_3_\", \"YEG_ADP\") 3"
## [1] "3 X60rep311018_SecA_YEG_ADP_1min_2_SecAYEG_ADP c(\"X60rep311018_\", \"_YEG_ADP_1min_2_\", \"YEG_ADP\") 2"
## [1] "3 X60rep311018_SecA_YEG_ADP_1min_1_SecAYEG_ADP c(\"X60rep311018_\", \"_YEG_ADP_1min_1_\", \"YEG_ADP\") 1"
## [1] "3 X300rep311018_SecA_YEG_ADP_5min_3_SecAYEG_ADP c(\"X300rep311018_\", \"_YEG_ADP_5min_3_\", \"YEG_ADP\") 3"
## [1] "3 X300rep311018_SecA_YEG_ADP_5min_2_SecAYEG_ADP c(\"X300rep311018_\", \"_YEG_ADP_5min_2_\", \"YEG_ADP\") 2"
## [1] "3 X300rep311018_SecA_YEG_ADP_5min_1_SecAYEG_ADP c(\"X300rep311018_\", \"_YEG_ADP_5min_1_\", \"YEG_ADP\") 1"
## [1] "3 X1800rep311018_SecA_YEG_ADP_30min_3_SecAYEG_ADP c(\"X1800rep311018_\", \"_YEG_ADP_30min_3_\", \"YEG_ADP\") 3"
## [1] "3 X1800rep311018_SecA_YEG_ADP_30min_2_SecAYEG_ADP c(\"X1800rep311018_\", \"_YEG_ADP_30min_2_\", \"YEG_ADP\") 2"
## [1] "3 X1800rep311018_SecA_YEG_ADP_30min_1_SecAYEG_ADP c(\"X1800rep311018_\", \"_YEG_ADP_30min_1_\", \"YEG_ADP\") 1"
## [1] "3 X0rep011118_SecA_YEG_ref_2_SecAYEG_AMPPNP c(\"X0rep011118_\", \"_YEG_ref_2_\", \"YEG_AMPPNP\") 2"
## [1] "3 X0rep011118_SecA_YEG_ref_3_SecAYEG_AMPPNP c(\"X0rep011118_\", \"_YEG_ref_3_\", \"YEG_AMPPNP\") 3"
## [1] "3 X0rep011118_SecA_YEG_ref_1_SecAYEG_AMPPNP c(\"X0rep011118_\", \"_YEG_ref_1_\", \"YEG_AMPPNP\") 1"
## [1] "2 X15rep291018_SecYEGA_AMPPNP_15sec_3_SecAYEG_AMPPNP c(\"X15rep291018_SecYEGA_AMPPNP_15sec_3_\", \"YEG_AMPPNP\") 3"
## [1] "2 X15rep291018_SecYEGA_AMPPNP_15sec_2_SecAYEG_AMPPNP c(\"X15rep291018_SecYEGA_AMPPNP_15sec_2_\", \"YEG_AMPPNP\") 2"
## [1] "2 X15rep291018_SecYEGA_AMPPNP_15sec_1_SecAYEG_AMPPNP c(\"X15rep291018_SecYEGA_AMPPNP_15sec_1_\", \"YEG_AMPPNP\") 1"
## [1] "2 X60rep291018_SecYEGA_AMPPNP_1min_3_SecAYEG_AMPPNP c(\"X60rep291018_SecYEGA_AMPPNP_1min_3_\", \"YEG_AMPPNP\") 3"
## [1] "2 X60rep291018_SecYEGA_AMPPNP_1min_2_SecAYEG_AMPPNP c(\"X60rep291018_SecYEGA_AMPPNP_1min_2_\", \"YEG_AMPPNP\") 2"
## [1] "2 X60rep291018_SecYEGA_AMPPNP_1min_1_SecAYEG_AMPPNP c(\"X60rep291018_SecYEGA_AMPPNP_1min_1_\", \"YEG_AMPPNP\") 1"
## [1] "2 X300rep301018_SecYEGA_AMPPNP_5min_3_SecAYEG_AMPPNP c(\"X300rep301018_SecYEGA_AMPPNP_5min_3_\", \"YEG_AMPPNP\") 3"
## [1] "2 X300rep301018_SecYEGA_AMPPNP_5min_2_SecAYEG_AMPPNP c(\"X300rep301018_SecYEGA_AMPPNP_5min_2_\", \"YEG_AMPPNP\") 2"
## [1] "2 X300rep301018_SecYEGA_AMPPNP_5min_1_SecAYEG_AMPPNP c(\"X300rep301018_SecYEGA_AMPPNP_5min_1_\", \"YEG_AMPPNP\") 1"
## [1] "2 X1800rep301018_SecYEGA_AMPPNP_30min_3_SecAYEG_AMPPNP c(\"X1800rep301018_SecYEGA_AMPPNP_30min_3_\", \"YEG_AMPPNP\") 3"
## [1] "2 X1800rep301018_SecYEGA_AMPPNP_30min_2_SecAYEG_AMPPNP c(\"X1800rep301018_SecYEGA_AMPPNP_30min_2_\", \"YEG_AMPPNP\") 2"
## [1] "2 X1800rep301018_SecYEGA_AMPPNP_30min_1_SecAYEG_AMPPNP c(\"X1800rep301018_SecYEGA_AMPPNP_30min_1_\", \"YEG_AMPPNP\") 1"
## [1] "3 X0rep291018_SecA_REF_5_SecA_ADP c(\"X0rep291018_\", \"_REF_5_\", \"_ADP\") 5"
## [1] "3 X0rep291018_SecA_REF_4_SecA_ADP c(\"X0rep291018_\", \"_REF_4_\", \"_ADP\") 4"
## [1] "3 X0rep291018_SecA_REF_3_SecA_ADP c(\"X0rep291018_\", \"_REF_3_\", \"_ADP\") 3"
## [1] "3 X0rep291018_SecA_REF_2_SecA_ADP c(\"X0rep291018_\", \"_REF_2_\", \"_ADP\") 2"
## [1] "3 X0rep291018_SecA_REF_1_SecA_ADP c(\"X0rep291018_\", \"_REF_1_\", \"_ADP\") 1"
## [1] "3 X15rep311018_SecA_ADP_15sec_4_SecA_ADP c(\"X15rep311018_\", \"_ADP_15sec_4_\", \"_ADP\") 4"
## [1] "3 X15rep311018_SecA_ADP_15sec_3_SecA_ADP c(\"X15rep311018_\", \"_ADP_15sec_3_\", \"_ADP\") 3"
## [1] "3 X15rep301018_SecA_ADP_15sec_2_SecA_ADP c(\"X15rep301018_\", \"_ADP_15sec_2_\", \"_ADP\") 2"
## [1] "3 X60rep311018_SecA_ADP_1min_3_SecA_ADP c(\"X60rep311018_\", \"_ADP_1min_3_\", \"_ADP\") 3"
## [1] "3 X60rep311018_SecA_ADP_1min_2_SecA_ADP c(\"X60rep311018_\", \"_ADP_1min_2_\", \"_ADP\") 2"
## [1] "3 X60rep311018_SecA_ADP_1min_1_SecA_ADP c(\"X60rep311018_\", \"_ADP_1min_1_\", \"_ADP\") 1"
## [1] "3 X300rep311018_SecA_ADP_5min_3_SecA_ADP c(\"X300rep311018_\", \"_ADP_5min_3_\", \"_ADP\") 3"
## [1] "3 X300rep311018_SecA_ADP_5min_2_SecA_ADP c(\"X300rep311018_\", \"_ADP_5min_2_\", \"_ADP\") 2"
## [1] "3 X300rep311018_SecA_ADP_5min_1_SecA_ADP c(\"X300rep311018_\", \"_ADP_5min_1_\", \"_ADP\") 1"
## [1] "3 X1800rep311018_SecA_ADP_30min_3_SecA_ADP c(\"X1800rep311018_\", \"_ADP_30min_3_\", \"_ADP\") 3"
## [1] "3 X1800rep311018_SecA_ADP_30min_2_SecA_ADP c(\"X1800rep311018_\", \"_ADP_30min_2_\", \"_ADP\") 2"
## [1] "3 X1800rep311018_SecA_ADP_30min_1_SecA_ADP c(\"X1800rep311018_\", \"_ADP_30min_1_\", \"_ADP\") 1"
## [1] "3 X0rep291018_SecA_REF_5_SecA_AMPPNP c(\"X0rep291018_\", \"_REF_5_\", \"_AMPPNP\") 5"
## [1] "3 X0rep291018_SecA_REF_4_SecA_AMPPNP c(\"X0rep291018_\", \"_REF_4_\", \"_AMPPNP\") 4"
## [1] "3 X0rep291018_SecA_REF_3_SecA_AMPPNP c(\"X0rep291018_\", \"_REF_3_\", \"_AMPPNP\") 3"
## [1] "3 X0rep291018_SecA_REF_2_SecA_AMPPNP c(\"X0rep291018_\", \"_REF_2_\", \"_AMPPNP\") 2"
## [1] "3 X0rep291018_SecA_REF_1_SecA_AMPPNP c(\"X0rep291018_\", \"_REF_1_\", \"_AMPPNP\") 1"
## [1] "3 X15rep291018_SecA_AMPPNP_15sec_3_SecA_AMPPNP c(\"X15rep291018_\", \"_AMPPNP_15sec_3_\", \"_AMPPNP\") 3"
## [1] "3 X15rep291018_SecA_AMPPNP_15sec_2_SecA_AMPPNP c(\"X15rep291018_\", \"_AMPPNP_15sec_2_\", \"_AMPPNP\") 2"
## [1] "3 X15rep291018_SecA_AMPPNP_15sec_1_SecA_AMPPNP c(\"X15rep291018_\", \"_AMPPNP_15sec_1_\", \"_AMPPNP\") 1"
## [1] "3 X60rep291018_SecA_AMPPNP_1min_3_SecA_AMPPNP c(\"X60rep291018_\", \"_AMPPNP_1min_3_\", \"_AMPPNP\") 3"
## [1] "3 X60rep291018_SecA_AMPPNP_1min_2_SecA_AMPPNP c(\"X60rep291018_\", \"_AMPPNP_1min_2_\", \"_AMPPNP\") 2"
## [1] "3 X60rep291018_SecA_AMPPNP_1min_1_SecA_AMPPNP c(\"X60rep291018_\", \"_AMPPNP_1min_1_\", \"_AMPPNP\") 1"
## [1] "3 X300rep291018_SecA_AMPPNP_5min_3_SecA_AMPPNP c(\"X300rep291018_\", \"_AMPPNP_5min_3_\", \"_AMPPNP\") 3"
## [1] "3 X300rep291018_SecA_AMPPNP_5min_2_SecA_AMPPNP c(\"X300rep291018_\", \"_AMPPNP_5min_2_\", \"_AMPPNP\") 2"
## [1] "3 X300rep291018_SecA_AMPPNP_5min_1_SecA_AMPPNP c(\"X300rep291018_\", \"_AMPPNP_5min_1_\", \"_AMPPNP\") 1"
## [1] "3 X1800rep291018_SecA_AMPPNP_30min_3_SecA_AMPPNP c(\"X1800rep291018_\", \"_AMPPNP_30min_3_\", \"_AMPPNP\") 3"
## [1] "3 X1800rep291018_SecA_AMPPNP_30min_2_SecA_AMPPNP c(\"X1800rep291018_\", \"_AMPPNP_30min_2_\", \"_AMPPNP\") 2"
## [1] "3 X1800rep291018_SecA_AMPPNP_30min_1_SecA_AMPPNP c(\"X1800rep291018_\", \"_AMPPNP_30min_1_\", \"_AMPPNP\") 1"
## [1] "3 X0rep291018_SecA_SecYEG_REF_2_SecAYEG c(\"X0rep291018_\", \"_SecYEG_REF_2_\", \"YEG\") 2"
## [1] "3 X0rep291018_SecA_SecYEG_REF_2_SecAYEG_ADP c(\"X0rep291018_\", \"_SecYEG_REF_2_\", \"YEG_ADP\") 2"
## [1] "3 X0rep291018_SecA_SecYEG_REF_2_SecAYEG_AMPPNP c(\"X0rep291018_\", \"_SecYEG_REF_2_\", \"YEG_AMPPNP\") 2"
## [1] "3 X0rep291018_SecA_YEG_REF_1_SecAYEG c(\"X0rep291018_\", \"_YEG_REF_1_\", \"YEG\") 1"
## [1] "3 X0rep291018_SecA_YEG_REF_1_SecAYEG_ADP c(\"X0rep291018_\", \"_YEG_REF_1_\", \"YEG_ADP\") 1"
## [1] "3 X0rep291018_SecA_YEG_REF_1_SecAYEG_AMPPNP c(\"X0rep291018_\", \"_YEG_REF_1_\", \"YEG_AMPPNP\") 1"
## [1] "3 X0rep291018_SecA_SecYEG_REF_3_SecAYEG c(\"X0rep291018_\", \"_SecYEG_REF_3_\", \"YEG\") 3"
## [1] "3 X0rep291018_SecA_SecYEG_REF_3_SecAYEG_ADP c(\"X0rep291018_\", \"_SecYEG_REF_3_\", \"YEG_ADP\") 3"
## [1] "3 X0rep291018_SecA_SecYEG_REF_3_SecAYEG_AMPPNP c(\"X0rep291018_\", \"_SecYEG_REF_3_\", \"YEG_AMPPNP\") 3"
#################################
new.colnames <- gsub(new.colnames, pattern = "rep.*?SecA_", replacement = "rep")
new.colnames <- gsub(new.colnames, pattern = "rep.*?_[0-9]_", replacement = "repcond")
#################################
# NOTE: The sequence of numbers doesn't really matter for the analysis, although data exploration graphical outputs are expected to change
repnumber <- c(seq.int(5), rep(c(1,2,3), times = 19),
               seq.int(5), rep(c(1,2,3), times = 4),
               seq.int(5), rep(c(1,2,3), times = 4), rep(c(4,5,6), each = 3))

new.colnames <- stringr::str_replace_all(string = new.colnames,
                                         pattern = "rep",
                                         replacement = paste0("rep", repnumber))
#################################
new.colnames
##   [1] "X0rep1condSecA"              "X0rep2condSecA"             
##   [3] "X0rep3condSecA"              "X0rep4condSecA"             
##   [5] "X0rep5condSecA"              "X15rep1condSecA"            
##   [7] "X15rep2condSecA"             "X15rep3condSecA"            
##   [9] "X60rep1condSecA"             "X60rep2condSecA"            
##  [11] "X60rep3condSecA"             "X300rep1condSecA"           
##  [13] "X300rep2condSecA"            "X300rep3condSecA"           
##  [15] "X1800rep1condSecA"           "X1800rep2condSecA"          
##  [17] "X1800rep3condSecA"           "X0rep1condSecAYEG"          
##  [19] "X0rep2condSecAYEG"           "X0rep3condSecAYEG"          
##  [21] "X15rep1condSecAYEG"          "X15rep2condSecAYEG"         
##  [23] "X15rep3condSecAYEG"          "X60rep1condSecAYEG"         
##  [25] "X60rep2condSecAYEG"          "X60rep3condSecAYEG"         
##  [27] "X300rep1condSecAYEG"         "X300rep2condSecAYEG"        
##  [29] "X300rep3condSecAYEG"         "X1800rep1condSecAYEG"       
##  [31] "X1800rep2condSecAYEG"        "X1800rep3condSecAYEG"       
##  [33] "X0rep1condSecAYEG_ADP"       "X0rep2condSecAYEG_ADP"      
##  [35] "X0rep3condSecAYEG_ADP"       "X15rep1condSecAYEG_ADP"     
##  [37] "X15rep2condSecAYEG_ADP"      "X15rep3condSecAYEG_ADP"     
##  [39] "X60rep1condSecAYEG_ADP"      "X60rep2condSecAYEG_ADP"     
##  [41] "X60rep3condSecAYEG_ADP"      "X300rep1condSecAYEG_ADP"    
##  [43] "X300rep2condSecAYEG_ADP"     "X300rep3condSecAYEG_ADP"    
##  [45] "X1800rep1condSecAYEG_ADP"    "X1800rep2condSecAYEG_ADP"   
##  [47] "X1800rep3condSecAYEG_ADP"    "X0rep1condSecAYEG_AMPPNP"   
##  [49] "X0rep2condSecAYEG_AMPPNP"    "X0rep3condSecAYEG_AMPPNP"   
##  [51] "X15rep1condSecAYEG_AMPPNP"   "X15rep2condSecAYEG_AMPPNP"  
##  [53] "X15rep3condSecAYEG_AMPPNP"   "X60rep1condSecAYEG_AMPPNP"  
##  [55] "X60rep2condSecAYEG_AMPPNP"   "X60rep3condSecAYEG_AMPPNP"  
##  [57] "X300rep1condSecAYEG_AMPPNP"  "X300rep2condSecAYEG_AMPPNP" 
##  [59] "X300rep3condSecAYEG_AMPPNP"  "X1800rep1condSecAYEG_AMPPNP"
##  [61] "X1800rep2condSecAYEG_AMPPNP" "X1800rep3condSecAYEG_AMPPNP"
##  [63] "X0rep1condSecA_ADP"          "X0rep2condSecA_ADP"         
##  [65] "X0rep3condSecA_ADP"          "X0rep4condSecA_ADP"         
##  [67] "X0rep5condSecA_ADP"          "X15rep1condSecA_ADP"        
##  [69] "X15rep2condSecA_ADP"         "X15rep3condSecA_ADP"        
##  [71] "X60rep1condSecA_ADP"         "X60rep2condSecA_ADP"        
##  [73] "X60rep3condSecA_ADP"         "X300rep1condSecA_ADP"       
##  [75] "X300rep2condSecA_ADP"        "X300rep3condSecA_ADP"       
##  [77] "X1800rep1condSecA_ADP"       "X1800rep2condSecA_ADP"      
##  [79] "X1800rep3condSecA_ADP"       "X0rep1condSecA_AMPPNP"      
##  [81] "X0rep2condSecA_AMPPNP"       "X0rep3condSecA_AMPPNP"      
##  [83] "X0rep4condSecA_AMPPNP"       "X0rep5condSecA_AMPPNP"      
##  [85] "X15rep1condSecA_AMPPNP"      "X15rep2condSecA_AMPPNP"     
##  [87] "X15rep3condSecA_AMPPNP"      "X60rep1condSecA_AMPPNP"     
##  [89] "X60rep2condSecA_AMPPNP"      "X60rep3condSecA_AMPPNP"     
##  [91] "X300rep1condSecA_AMPPNP"     "X300rep2condSecA_AMPPNP"    
##  [93] "X300rep3condSecA_AMPPNP"     "X1800rep1condSecA_AMPPNP"   
##  [95] "X1800rep2condSecA_AMPPNP"    "X1800rep3condSecA_AMPPNP"   
##  [97] "X0rep4condSecAYEG"           "X0rep4condSecAYEG_ADP"      
##  [99] "X0rep4condSecAYEG_AMPPNP"    "X0rep5condSecAYEG"          
## [101] "X0rep5condSecAYEG_ADP"       "X0rep5condSecAYEG_AMPPNP"   
## [103] "X0rep6condSecAYEG"           "X0rep6condSecAYEG_ADP"      
## [105] "X0rep6condSecAYEG_AMPPNP"

We will now parse the data into an object of class QFeatures, we have provided a function to assist with this in the package. If you want to do this yourself use the readQFeatures function from the QFeatures package.

secAqDF <- parseDeutData(object = DataFrame(secA),
                        design = new.colnames,
                        quantcol = 3:105, sequence = "Sequence", charge = "z")

4 normalisation

We normalise the data to uptake values based on the “undeuterated” mass of the peptide

secA_newdf <- DataFrame(data.frame(assay(secAqDF) - apply(assay(secAqDF), 1, function(x) min(x, na.rm = TRUE))))
secA_newdf <- cbind(DataFrame(secA)[,1:2], secA_newdf)

secAqDF_norm <- parseDeutData(secA_newdf, design = new.colnames, quantcol = 3:105, sequence = "Sequence", charge = "z")

Normalised by exchange amides

secAqDF_norm1 <- normalisehdx(secAqDF_norm,
                             sequence = unique(secA$Sequence),
                             method = "pc")

5 Heatmap visualisations of HDX data

To help us get used to the QFeatures we show how to generate a heatmap of these data from this object:

pheatmap(t(assay(secAqDF_norm1)),
         cluster_rows = FALSE, 
         cluster_cols = FALSE,
         color = brewer.pal(n = 9, name = "BuPu"),
         main = "secA heatmap", 
         fontsize = 14,
         legend_breaks = c(0, 1, 2, 3, 4, 5, 6, max(assay(secAqDF))),
         legend_labels = c("0", "1", "2", "3", "4", "5", "6", "Incorporation"))

# Analysis

To simplify the analysis, we subset to examine the protein secA and seA bound to ADP.

secAqDF_norm1_sub <- secAqDF_norm1[,c(1:17, 63:79)]

6 Functional data analysis of HDX-MS data

The hdxstats package uses an empirical Bayes functional approach to analyse the data. We explain this idea in steps so that we can get an idea of the approach. First we fit the parametric model to the data. This will allow us to explore the HdxStatModel class.

res <- differentialUptakeKinetics(object = secAqDF_norm1_sub, #provide a QFeature object
                                  feature = rownames(secAqDF_norm1_sub)[[1]][5], # which peptide to do we fit
                                  start = list(a = NULL, b = NULL,  d = NULL, p = 1)) # what are the starting parameter guesses
## Warning in differentialUptakeKinetics(object = secAqDF_norm1_sub, feature =
## rownames(secAqDF_norm1_sub)[[1]][5], : NAs introduced by coercion

Here, we see the HdxStatModel class, and that a Functional Model was applied to the data and a total of 2 models were fitted.

res
## Object of class "HdxStatModel"
## Method: Functional Model 
## Fitted 2

The nullmodel and alternative slots of an instance of HdxStatModel provide the underlying fitted models. The method and formula slots provide vital information about what analysis was performed. The vis slot provides a ggplot object so that we can visualise the functional fits.

res@vis

Since this is a ggplot object, we can customise in the usual grammatical ways.

res@vis + scale_color_manual(values = brewer.pal(n = 8, name = "Set2")[-c(1,2)])
## Scale for 'colour' is already present. Adding another scale for 'colour',
## which will replace the existing scale.

7 Analysis of secA HDX-MS experiment

We have seen the basic aspects of our functional modelling approach. We now wish to roll out our method across all peptides in the experiment. The fitUptakeKinetics function allows us to apply our modelling approach across all the peptide in the experiment. We need to provide a QFeatures object and the features for which we are fitting the model. The design will be extracted from the column names or you can provide a design yourself. The parameter initilisation should also be provided. Sometimes the model can’t be fit on the kinetics. This is either because there is not enough data or through lack of convergence. An error will be reported in these cases but this should not perturb the user. You may wish to try a few starting values if there excessive models that fail fitting.

res <- fitUptakeKinetics(object = secAqDF_norm1_sub,
                         feature = rownames(secAqDF_norm1_sub)[[1]],
                         start = list(a = NULL, b = NULL,  d = NULL, p = 1))
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "too few data points to fit model"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion

## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.

## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in nls.lm(par = start, fn = FCT, jac = jac, control = control, lower = lower, : lmdif: info = 0. Improper input parameters.
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Error in nlsModel(formula, mf, start, wts) : 
##   singular gradient matrix at initial parameter estimates
## [1] "Could not fit model, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## [1] "too few data points to fit model"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"
## Warning in max(data$value): no non-missing arguments to max; returning -Inf
## Warning in min(data$value): no non-missing arguments to min; returning Inf
## Warning in differentialUptakeKinetics(object = object, feature = x, start =
## start, : NAs introduced by coercion
## [1] "model fit failed, likely exessive missing values"

The code chunk above returns a class HdxStatModels indicating that a number of models for peptide have been fit. This is simply a holder for a list of HdxStatModel instances.

res
## Object of class "HdxStatModels"
## Number of models 208

We can easily examine individual fits by going to the underyling HdxStatModel class:

res@statmodels[[4]]@vis

We now wish to apply statistical analysis to these fitted curves. Our approach is an empirical Bayes testing procedure, which borrows information across peptides to stablise variance estimates. Here, we need to provide the original data that was analysed and the HdxStatModels class. The following code chunk returns an object of class HdxStatRes. This object tell us that statistical analysis was performed using our Functional model.

out <- processFunctional(object = secAqDF_norm1_sub, params = res)
## Warning in pf(q = Fstat, df1 = d1, df2 = d2, lower.tail = FALSE): NaNs produced
## Warning in pf(q = modFstat, df1 = d1, df2 = d2, lower.tail = FALSE): NaNs
## produced
## Warning in stats::optim(x = c(0.00499600199281143, 0.00127485964142953, : one-dimensional optimization by Nelder-Mead is unreliable:
## use "Brent" or optimize() directly
## Warning in densfun(x, parm, ...): NaNs produced

## Warning in densfun(x, parm, ...): NaNs produced

## Warning in densfun(x, parm, ...): NaNs produced
## Warning in stats::optim(x = c(0.0126744194629643, 0.000351634549827898, : one-dimensional optimization by Nelder-Mead is unreliable:
## use "Brent" or optimize() directly
## Warning in densfun(x, parm, ...): NaNs produced

## Warning in densfun(x, parm, ...): NaNs produced

## Warning in densfun(x, parm, ...): NaNs produced
out
## Object of class "HdxStatRes"
## Analysed using Functional model

The main slot of interest is the results slot which returns quantities of interest such as p-values and fdr corrected p-values because of multiple testing. The following is the DataFrame of interest.

out@results
## DataFrame with 208 rows and 9 columns
##                   Fstat.Fstat Fstat.numerator Fstat.denomenator       pvals
##                        <list>          <list>            <list>   <numeric>
## LGGTQ_1               0.39418        0.004996         0.0126744 8.10901e-01
## IINAME_1              3.62552      0.00127486       0.000351635 1.89956e-02
## AMEPEM_1              13.6476      0.00240748       0.000176403 4.02221e-06
## MEPEM_1               21.7177       0.0063718       0.000293391 5.65838e-08
## EKLSDEELKGKTAE_3       6.6861     8.53706e-05       1.27684e-05 9.17603e-04
## ...                       ...             ...               ...         ...
## IFQSIG_1             0.114395       0.0051095         0.0446654    0.975564
## PGMQG_1              0.533322       0.0212795         0.0398999    0.713196
## VINPGFAF_1            0.75321      0.00637703        0.00846647    0.570389
## VTGTMFL_1            0.219675        0.216819          0.986999    0.922320
## VYAAQSTHLPLKVNM_3           0               0        -0.0287788         NaN
##                           fdr ebayes.pvals  ebayes.fdr empirical.fdr
##                     <numeric>    <numeric>   <numeric>     <numeric>
## LGGTQ_1           8.60803e-01  7.96702e-01 8.45730e-01      0.642286
## IINAME_1          3.00159e-02  1.57736e-02 2.53111e-02      0.613006
## AMEPEM_1          1.28092e-05  2.99583e-06 1.03356e-05      0.613006
## MEPEM_1           2.92821e-07  3.79322e-08 1.96299e-07      0.613006
## EKLSDEELKGKTAE_3  1.80899e-03  2.25208e-03 4.16232e-03      0.613006
## ...                       ...          ...         ...           ...
## IFQSIG_1             1.000000     0.971751    1.000000      0.690643
## PGMQG_1              0.764930     0.682930    0.732469      0.632548
## VINPGFAF_1           0.618170     0.533620    0.578321      0.619953
## VTGTMFL_1            0.964244     0.907741    0.953820      0.662517
## VYAAQSTHLPLKVNM_3         NaN          NaN         NaN      1.000000
##                   fitcomplete
##                     <integer>
## LGGTQ_1                     1
## IINAME_1                    2
## AMEPEM_1                    3
## MEPEM_1                     4
## EKLSDEELKGKTAE_3            5
## ...                       ...
## IFQSIG_1                  204
## PGMQG_1                   205
## VINPGFAF_1                206
## VTGTMFL_1                 207
## VYAAQSTHLPLKVNM_3         208

We can now examine the peptides for which the false discovery rate is less than 0.01

which(out@results$ebayes.fdr < 0.01)
##                AMEPEM_1                 MEPEM_1        EKLSDEELKGKTAE_3 
##                       3                       4                       5 
##       EKLSDEELKGKTAEF_2            RARLEKGEVL_3           RARLEKGEVLE_3 
##                       6                       8                       9 
##         RARLEKGEVLENL_2              MRHFDVQL_2               DVQLLGG_1 
##                      10                      19                      20 
##               LLGGMVL_1                LGGMVL_1              LGGMVLNE_1 
##                      21                      22                      23 
##                 MVLNE_1              NERSIAEM_1         MRTGEGKTLTATL_2 
##                      24                      25                      26 
##          RTGEGKTLTATL_2               ATLPAYL_1                  PAYL_1 
##                      27                      28                      29 
##          NALTGKGVHVVT_2       NALTGKGVHVVTVND_2        YLAQRDAENNRPLF_3 
##                      31                      32                      33 
##       YLAQRDAENNRPLFE_2         AQRDAENNRPLFE_2               FLGLTVG_1 
##                      34                      35                      38 
##                LGLTVG_1   LTVGINLPGMPAPAKREAY_3 TVGINLPGMPAPAKREAYAAD_3 
##                      39                      40                      41 
##    INLPGMPAPAKREAYAAD_2               LPGMPAP_1          ITYGTNNEYGFD_2 
##                      42                      43                      46 
##                 NEYGF_1                NEYGFD_1         DYLRDNMAFSPEE_2 
##                      47                      48                      49 
##              NMAFSPEE_1                AFSPEE_1                 VDEVD_1 
##                      52                      53                      55 
##                EVDSIL_1       IDEARTPLIISGPAE_3   IDEARTPLIISGPAEDSSE_2 
##                      56                      58                      59 
##          ARTPLIISGPAE_2      ARTPLIISGPAEDSSE_2               FQGEGHF_2 
##                      60                      61                      64 
##                 GEGHF_1              LLVKEGIM_1            LLVKEGIMDE_2 
##                      65                      70                      71 
##               LVKEGIM_1             LVKEGIMDE_1          LVKEGIMDEGES_2 
##                      73                      74                      75 
##         LVKEGIMDEGESL_2               YSPANIM_1              MHHVTAAL_1 
##                      76                      79                      82 
##            AKEGVQIQNE_2        AKEGVQIQNENQTL_2      AKEGVQIQNENQTLAS_2 
##                      89                      90                      91 
##              IQNENQTL_1               SITFQNY_1                  FQNY_1 
##                      92                      94                      97 
##        YEKLAGMTGTADTE_2       YEKLAGMTGTADTEA_2                 FEFSS_1 
##                     100                     101                     102 
##     VVVPTNRPMIRKDLPDL_4   VVVPTNRPMIRKDLPDLVY_4       VPTNRPMIRKDLPDL_3 
##                     107                     108                     109 
##                 VYMTE_1                VYMTEA_1      IIEDIKERTAKGQPVL_3 
##                     111                     112                     113 
##                  QPVL_1               VGTISIE_1                SELVSN_1 
##                     114                     115                     119 
##                 AAIVA_1          AAIVAQAGYPAA_1            IVAQAGYPAA_1 
##                     122                     123                     124 
##          IVAQAGYPAAVT_1               QAGYPAA_1               VTIATNM_1 
##                     125                     126                     131 
##                IVLGGS_1               IVLGGSW_1             ALENPTAEQ_1 
##                     133                     134                     137 
##                 EAGGL_1                  YLSM_1                 YLSME_1 
##                     141                     143                     144 
##         IEHPWVTKAIANA_2              FDIRKQLL_2             FDIRKQLLE_2 
##                     147                     148                     149 
##            FDIRKQLLEY_2         YDDVANDQRRAIY_2          DDVANDQRRAIY_2 
##                     150                     151                     152 
##               SQRNELL_1                DVSETI_1                IREDVF_1 
##                     153                     156                     157 
##         KATIDAYIPPQSL_2                WDIPGL_1              WDIPGLQE_1 
##                     158                     162                     163 
##            WDIPGLQERL_2                  PGLQ_1          QERLKNDFDLDL_2 
##                     164                     165                     166 
##               ERLKNDF_2           ERLKNDFDLDL_2                RLKNDF_2 
##                     167                     168                     169 
##            RLKNDFDLDL_2                  DLDL_1               LDLPIAE_1 
##                     170                     171                     172 
##                  PIAE_1                PIAEWL_1              WLDKEPEL_1 
##                     173                     174                     175 
##                 HEETL_1               HEETLRE_2            RERILAQSIE_2 
##                     179                     180                     181 
##              RILAQSIE_1                  LQTL_1                QTLDSL_1 
##                     182                     184                     185 
##              WKEHLAAM_1             WKEHLAAMD_2                 AAMDY_1 
##                     187                     188                     189 
##                 FAAML_1                LESLKY_1           ESLKYEVISTL_2 
##                     196                     198                     199 
##                EVISTL_1 
##                     200

Let us visualise some of these examples:

res@statmodels[[24]]@vis + res@statmodels[[25]]@vis

We an use a forest plot to examine the differneces

fp <- forestPlot(params = res@statmodels[[25]], condition = c(1, 2))

We can produce a table to actual numbers. We see that at all 4 timepoints the deuterium difference is negative, though the confidence intervals overlap with 0. Our functional approach is picking up this small but reproducible difference.

knitr::kable(fp$data)
Estimate confL confU rownames condition
a 0.4960103 0.3518399 0.6401808 a 1
b 0.2640037 0.2070750 0.3209325 b 1
d 0.0059789 -0.0087207 0.0206785 d 1
p 0.2679734 0.1539674 0.3819795 p 1
a1 0.9256685 -26.6011374 28.4524745 a 2
b1 0.2444346 -7.9140489 8.4029182 b 2
d1 0.0057254 -0.0069761 0.0184269 d 2
p1 0.0616955 -0.3292508 0.4526418 p 2
1 0.0000000 -0.0064143 0.0064143 Timepoint 0 Deuterium Difference
2 -0.0153433 -0.0395712 0.0088846 Timepoint 15 Deuterium Difference
3 0.0181838 -0.0056625 0.0420301 Timepoint 60 Deuterium Difference
4 0.0777933 0.0658278 0.0897587 Timepoint 300 Deuterium Difference
5 0.1293957 0.0762629 0.1825286 Timepoint 1800 Deuterium Difference

We can make a Manhattan plot to better spatially visualize what’s happening.

#We need to provide an indication of "difference" so we can examine deprotected
# or prected regions
diffdata <- assay(secAqDF_norm1_sub)[,34] - assay(secAqDF_norm1_sub)[,17]
secA <- read.csv(secApath)

#carefully subset regions and sequences
region = secA[, c("Start", "End")]
region <- unique(region[paste0(secA$Sequence, "_", secA$z) %in% rownames(out@results),])
sequences = rownames(out@results)


sigplots <- manhattanplot(params = out,
                          sequences = sequences, 
                          region = region,
                          difference = diffdata,
                          nrow = 1)
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.
sigplots[[1]] + plot_layout(guides = 'collect')
## Warning: Removed 1 rows containing missing values (geom_point).